package wangxiaotao.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import wangxiaotao.bean.vo.MenuVO;
import wangxiaotao.bean.vo.RoomTypeSelectorVO;
import wangxiaotao.bean.vo.RoomTypeVO;
import wangxiaotao.bean.vo.TotalVO;
import wangxiaotao.entity.Role;
import wangxiaotao.entity.User;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author wang
 * @since 2022-03-22
 */
public interface AdminMapper{

    /**
     * 获取当前用户权限下的所有权限数据
     * @param id
     * @return
     */
    List<MenuVO> queryTypeByUserRole(Integer id);

    /**
     * 根据用户id获取角色信息
     * @param id
     * @return
     */
    List<Role> queryRolesByUserId(Integer id);

    /**
     * 获取所有用户信息 包括角色信息
     * 模糊查询数据也在这个接口
     * @return
     */
    IPage<List<User>> queryAllUserInfoAndRole(@Param("page") IPage<User> page, @Param("type") String type, @Param("data") String data);

    /**
     * 查询最大的roomNo
     * @return
     */
    Integer queryMaxRoomNo(Integer floor);

    /**
     * 查询所有角色信息和对应的权限信息
     * @return
     */
    List<Role> queryAllRoleAndPermission(String type,String data);

    /**
     * 根据角色ids查询角色的所以权限
     * @param id
     * @return
     */
    List<String> queryAllResourceMarkByUserId(List<Integer> id);

    /**
     * 获取所有 订单数量 房间数量 用户数量 总金额
     * @return
     */
    TotalVO getTotalDate();

    /**
     * 查询所有房间 类型
     * @return
     */
    List<RoomTypeVO> queryAllRoomType();

    /**
     * 获取房间类型数据 在新增房间时选择房间类数据
     * @return
     */
    List<RoomTypeSelectorVO> queryRoomTypeForSelector();

    List<String> queryMarkByUserRole(int id);


    /**
     * 查询所有订单 和订单房间的图片
     * @param page
     * @param type
     * @param data
     * @return
     */
//    IPage<Order> queryAllOrderAndImages(@Param("page") IPage<Order> page, @Param("type") String type, @Param("data") String data);
}
